var config = {
	fixedTimeLocalStart: "#fixedTimeLocalStart",
	fixedTimeUnixStart: "#fixedTimeUnixStart",
	fixedTimeLocalEnd: "#fixedTimeLocalEnd",
	fixedTimeUnixEnd: "#fixedTimeUnixEnd",
	initLocal: "#initLocal",
	initUnix: "#initUnix",
	timer: "1s",
	yyyyMMddhhmmss: "yyyy-MM-dd hh:mm:ss",
	oneDayLongTime: 86400000,//24*60*60*1000
	oneWeekLongTime: 604800000//7*24*60*60*1000
}

$(function(){
	//今日点击
	$(".today").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getTodayTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//昨日点击
	$(".yesterday").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getYesterdayTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//本周点击
	$(".this-week").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getThisWeekTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//上周点击
	$(".last-week").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getLastWeekTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//本月点击
	$(".this-month").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getThisMonthTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//上月点击
	$(".last-month").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getLastMonthTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//本季度点击
	$(".this-season").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getThisSeasonTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//上季度点击
	$(".last-season").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getLastSeasonTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//近三十天点击
	$(".nearly-thirty-days").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getNearlyThirtyDaysTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//近三月点击
	$(".nearly-three-months").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getNearlyThreeMonthsTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//全部点击
	$(".all-days").click(function(){
		active0(this);
		clearTime0();
		var timeArr = getAllDaysTime(new Date());
		initTime0(timeArr[0], timeArr[1]);
	});
	
	//Unix -> 字符串
	$("#time2unix").click(function(){
		var time = $("#firstTime2unixInput").val();
        var date = new Date(time);
        var outputString = date.getTime();
        $("#secondTime2unixInput").val(outputString);
	});
	
	//字符串 -> Unix
	$("#unix2time").click(function(){
		var time = $("#firstUnix2timeInput").val();
		console.log(time)
        var date = new Date(parseInt(time));
		console.log(date.getTime())
        $("#secondUnix2timeInput").val(date.format(config.yyyyMMddhhmmss));
	});
	
	$("#time2time").click(function(){
		var year = $("#year").val();
		var month = $("#month").val();
		var day = $("#day").val();
		var hour = $("#hour").val();
		var minute = $("#minute").val();
		var second = $("#second").val();
        var date = new Date(year,month-1,day,hour,minute,second);
		$("#longTime").val(date.getTime());
	});
	
});
$(function(){
	//$('body').everyTime(config.timer, initTime);//初始化定时时间
	initTime();
	//初始化今日时间
	$(".today").trigger("click");
});

function initTime(){
	//初始化北京时间
	$(config.initLocal).val(new Date().format(config.yyyyMMddhhmmss));
	//初始化Unix时间
	$(config.initUnix).val(new Date().getTime());
	var date = new Date();
	$("#year").val(date.getFullYear());
	var month = date.getMonth()+1;
	if((month+"").month<=1){
		month = "0"+month;
	}
	$("#month").val(month);
	var day = date.getDay();
	if((day+"").length<=1){
		day = "0"+day;
	}
	$("#day").val(day);
}

/**
 * 获取今日的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getTodayTime(nowTime){
	var arr = new Array();
	var startTime = nowTime;//开始时间
	var endTime = nowTime;//结束时间
	var hour = nowTime.getHours();//当前小时数
	var oneDayLongTime = config.oneDayLongTime;
	if(hour<7){
		//显示昨日的时间
		startTime = new Date(nowTime.getTime() - oneDayLongTime);//减一天，并设置为7点
	} else {
		//显示今日的时间
		endTime = new Date(nowTime.getTime() + oneDayLongTime);//加一天，并设置为7点
	}
	
	startTime = gen7Time(startTime);//设置为7点
	endTime = gen7Time(endTime);//设置为7点
	
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取昨日的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getYesterdayTime(nowTime){
	var arr = getTodayTime(nowTime);
	var startTime = arr[0];//开始时间
	var endTime = arr[1];//结束时间
	
	//每个时间减一天
	var oneDayLongTime = config.oneDayLongTime;
	startTime = new Date(startTime.getTime() - oneDayLongTime);//减一天，并设置为7点
	endTime = new Date(endTime.getTime() - oneDayLongTime);//减一天，并设置为7点
	
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取本周的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getThisWeekTime(nowTime){
	var arr = getTodayTime(nowTime);
	var nowStartTime = arr[0];
	var dayofweek = nowStartTime.getDay();//本周第几天（从第0天开始）
	var nowDay = nowStartTime.getDate();  //当前日
	//本周增加2-dayofweek天时间
	var oneDayLongTime = config.oneDayLongTime;
	var longTime = nowStartTime.getTime() - (dayofweek-1) * oneDayLongTime;

	var startTime = new Date(longTime);//开始时间
	var endTime = new Date(longTime+(7*oneDayLongTime));//结束时间
	
	arr = new Array();
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取上周的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getLastWeekTime(nowTime){
	var arr = getThisWeekTime(nowTime);
	
	//每个时间减七天
	var oneWeekLongTime = config.oneWeekLongTime;
	startTime = new Date(arr[0].getTime() - oneWeekLongTime);//减一天，并设置为7点
	endTime = new Date(arr[1].getTime() - oneWeekLongTime);//减一天，并设置为7点
	
	arr = new Array();
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取本月的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getThisMonthTime(nowTime){
	var arr = getTodayTime(nowTime);
	var nowStartTime = arr[0];
	//获得当前年份4位年    
	var currentYear = nowStartTime.getFullYear(); 
	//获得当前月份0-11    
	var currentMonth = nowStartTime.getMonth();
	
	var startTime = new Date(currentYear, currentMonth, 1); //获取本月开始时间
	if(currentMonth>=11){
		currentMonth -= 11;  //月份减11  
		currentYear++;	     //年份增1  
	}else{
		currentMonth++;		 //没有跨年的
	}
	var endTime = new Date(currentYear,currentMonth,1);//结束时间
	
	startTime = gen7Time(startTime);//设置为7点
	endTime = gen7Time(endTime);//设置为7点
	
	arr = new Array();
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取上月的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getLastMonthTime(nowTime){
	var arr = getThisMonthTime(nowTime);
	
	var nowStartTime = arr[0];
	//如果上月跨年了需要处理月份与年份
	//获得当前年份4位年    
	var currentYear = nowStartTime.getFullYear(); 
	//获得当前月份0-11    
	var currentMonth = nowStartTime.getMonth();
	console.log(currentYear+"	"+currentMonth)
	currentMonth--;
	var startTime = new Date(currentYear,currentMonth,1);
	var endTime = nowStartTime;//本月的开始时间是上月的结束时间
	
	startTime = gen7Time(startTime);//设置为7点
	endTime = gen7Time(endTime);//设置为7点
	
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取本季度的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getThisSeasonTime(nowTime){
	var arr = getTodayTime(nowTime);
	var nowStartTime = arr[0];
	//获得当前年份4位年    
	var currentYear = nowStartTime.getFullYear(); 
	//获得当前月份0-11    
	var currentMonth = nowStartTime.getMonth();
	
	var startYear = currentYear;//开始年份
	var endYear = currentYear;//结束年份
	var startMonth = 0;//开始月份
	var endMonth = 0;//结束月份
	if(currentMonth<3){
		//第一季度
		startMonth = 0;
		endMonth = 3;
	}else if(currentMonth>=3 && currentMonth<6){
		//第二季度
		startMonth = 3;
		endMonth = 6;
	}else if(currentMonth>=6 && currentMonth<9){
		//第三季度
		startMonth = 6;
		endMonth = 9;
	}else if(currentMonth>=9 && currentMonth<12){
		//第四季度
		startMonth = 9;
		endMonth = 12;
	}
	console.log(currentYear+"	"+currentMonth)
	var startTime = new Date(startYear, startMonth, 1); //开始时间
	var endTime = new Date(endYear,endMonth,1);//结束时间
	
	startTime = gen7Time(startTime);//设置为7点
	endTime = gen7Time(endTime);//设置为7点
	
	arr = new Array();
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取上季度的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getLastSeasonTime(nowTime){
	var arr = getThisSeasonTime(nowTime);
	
	var nowStartTime = arr[0];
	//如果上月跨年了需要处理月份与年份
	//获得当前年份4位年    
	var currentYear = nowStartTime.getFullYear(); 
	//获得当前月份0-11    
	var currentMonth = nowStartTime.getMonth();
	
	currentMonth-=3;
	var startTime = new Date(currentYear,currentMonth,1);
	var endTime = nowStartTime;//本月的开始时间是上月的结束时间
	
	startTime = gen7Time(startTime);//设置为7点
	endTime = gen7Time(endTime);//设置为7点
	
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取近三十天的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getNearlyThirtyDaysTime(nowTime){
	var arr = getTodayTime(nowTime);
	
	var nowStartTime = arr[1];
	//获得当前年份4位年    
	var currentYear = nowStartTime.getFullYear(); 
	//获得当前月份0-11    
	var currentMonth = nowStartTime.getMonth();
	//获得当前月份0-11    
	var currentMonth = nowStartTime.getMonth();
	//当前日
	var nowDay = nowStartTime.getDate();  
	
	nowDay-=30;
	var startTime = new Date(currentYear,currentMonth,nowDay);
	var endTime = nowStartTime;//本月的开始时间是近三十天的结束时间
	
	startTime = gen7Time(startTime);//设置为7点
	endTime = gen7Time(endTime);//设置为7点
	
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取近三月的时间
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getNearlyThreeMonthsTime(nowTime){
	var arr = getTodayTime(nowTime);
	
	var nowStartTime = arr[1];
	//如果上月跨年了需要处理月份与年份
	//获得当前年份4位年    
	var currentYear = nowStartTime.getFullYear(); 
	//获得当前月份0-11    
	var currentMonth = nowStartTime.getMonth();
	
	currentMonth-=2;
	var startTime = new Date(currentYear,currentMonth,1);
	var endTime = nowStartTime;//本月的开始时间是上月的结束时间
	
	startTime = gen7Time(startTime);//设置为7点
	endTime = gen7Time(endTime);//设置为7点
	
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

/**
 * 获取全部的时间（2000-01-01到今天）
 * 返回时间数组，第0个元素为开始时间，第1个元素为结束时间
 */
function getAllDaysTime(nowTime){
	var arr = getTodayTime(nowTime);

	var startTime = new Date(2000,0,1);
	var endTime = arr[1];//本月的开始时间是上月的结束时间
	
	startTime = gen7Time(startTime);//设置为7点
	endTime = gen7Time(endTime);//设置为7点
	
	arr[0] = startTime;//开始时间
	arr[1] = endTime;//结束时间
	return arr;
}

//显示状态
function active0(obj){
	$(obj).siblings().removeClass("btn-primary");
	$(obj).addClass("btn-primary");
}

//变更固定时间-改变开始和结束文本框中的值
function clearTime0(){
	//初始化数据
	$(config.fixedTimeLocalStart).val("");
	$(config.fixedTimeLocalEnd).val("");
	$(config.fixedTimeUnixStart).val("");
	$(config.fixedTimeUnixEnd).val("");
}

function initTime0(startTime, endTime){
	//初始化数据
	$(config.fixedTimeLocalStart).val(startTime.format(config.yyyyMMddhhmmss));//北京开始时间
	$(config.fixedTimeUnixStart).val(startTime.getTime());//北京Unix开始时间
	$(config.fixedTimeLocalEnd).val(endTime.format(config.yyyyMMddhhmmss));//北京结束时间
	$(config.fixedTimeUnixEnd).val(endTime.getTime());//Unix结束时间
}